System and method of determining distances between geographic positions

ABSTRACT

A system and method is provided of determining geographic positions. In one aspect, a user points the device at first and second positions on the surface of a geographic object. Based on the position of the device, the orientation of the device, and information identifying the geographic position of the surface of the object, a processor determines and displays the distance between the first and second positions.

BACKGROUND OF THE INVENTION

A variety of technological systems exist for determining the positiongeographic objects. For example, cell phones often include GPS receiversand accelerometers to determine their own geographic position andorientation.

Devices also exist for determining the geographic position of otherobjects. A total station is an optical instrument used in surveying totake measurements of scenes. It is a combination of an electronictheodolite (transit), an electronic distance meter (EDM) and softwarerunning on an external computer known as a data collector.

With a total station one may determine angles and distances from theinstrument to points to be surveyed. With the aid of trigonometry andtriangulation, the angles and distances may be used to calculate thecoordinates of actual positions (X, Y, and Z or northing, easting andelevation) of surveyed points, or the position of the instrument fromknown points, in absolute terms.

The data may be downloaded from the theodolite to an external computerand application software will generate a map of the surveyed area.

BRIEF SUMMARY OF THE INVENTION

In one aspect, a method of determining distances with a device isprovided. The method includes receiving object position datarepresenting the position of a surface of a geographic object,determining the first and second geographic position of the device, anddetermining the first and second geographic orientation of the device.It also includes determining, with a processor, the distance between afirst and second position on the surface of the geographic object basedon the first geographic position of the device, the second geographicposition of the device, the first geographic orientation of the device,the second geographic orientation of the device and the object positiondata.

In another aspect, a system is provided that includes a positiondetector providing a position value as output and an orientationdetector providing an orientation value as output. The position valuerepresents a position relative to a geographic reference and theorientation value represents an angle relative to the reference. Thesystem also includes an electronic display and a processor incommunication with the position detector, orientation detector andelectronic display. It also includes instructions executable by theprocessor, where the instructions comprise: accessing data representingthe geographic positions of a plurality of points on the surface of ageographic object; determining a first geographic position, where thefirst geographic position is determined based on a first position valueoutput by the position detector, a first orientation value output by theorientation detector and the data, and displaying a value associatedwith the first geographic position.

Yet another aspect relates to a method of using a wireless phone todetermine distances. The method includes: receiving first and secondposition values representative of the geographic position of thewireless phone; receiving first and second orientation valuesrepresentative of the geographic orientation of the wireless phone;receiving object position data from a server, where the object positiondata represents the geographic position of a plurality of points on thesurface of a geographic object; determining with a processor, first andsecond geographic positions on the surface based on the intersection ofthe surface with the first and second lines defined by the first andsecond positions and the first and second geographic orientations,respectively; determining with a processor, the distance between thefirst and second geographic positions; and displaying, on an electronicdisplay on the wireless phone, the distance.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional diagram of a system in accordance with an aspectof the invention.

FIG. 2 is a pictorial diagram of a system in accordance with an aspectof the invention.

FIG. 3 is a street level image in accordance with an aspect of theinvention, captured by a camera.

FIG. 4 is a diagram functionally illustrating, in accordance with anaspect of the invention, the relative geographic positions of objectswithin a street level image and the position and angle of a camera usedto capture the street level image.

FIG. 5 is a diagram functionally illustrating, in accordance with anaspect of the invention, object position data representing thegeographic position of surfaces of geographic objects.

FIG. 6 is a pictorial diagram of the front of a device in accordancewith an aspect of the invention.

FIG. 7 is a pictorial diagram of the back of a device in accordance withan aspect of the invention.

FIG. 8 is a diagram functionally illustrating, in accordance with anaspect of the invention, the orientation of a device relative to groundlevel.

FIG. 9 is a diagram functionally illustrating, in accordance with anaspect of the invention, the orientation of a device relative tolatitude and longitude.

FIG. 10 is a diagram functionally illustrating, in accordance with anaspect of the invention, the orientation and position of a client devicerelative to a position on the surface of a geographic object.

FIG. 11 illustrates a device and its display of information inaccordance with an aspect of the invention.

FIG. 12 is a diagram functionally illustrating the calculation of aposition on the surface of a geographic object in accordance with anaspect of the invention.

FIG. 13 is a diagram functionally illustrating, in accordance with anaspect of the invention, the orientation and position of a client devicerelative to a position on the surface of a geographic object.

FIG. 14 illustrates a device and its display of information inaccordance with an aspect of the invention.

FIG. 15 is a diagram functionally illustrating, in accordance with anaspect of the invention, the calculation of a position on the surface ofa geographic object.

FIG. 16 is a diagram functionally illustrating, in accordance with anaspect of the invention, the calculation of the distance betweenpositions on the surface of a geographic object.

FIG. 17 illustrates a device and its display of information inaccordance with an aspect of the invention.

FIG. 18 illustrates a device and its display of information inaccordance with an aspect of the invention.

FIG. 19 illustrates a device and its display of information inaccordance with an aspect of the invention.

FIG. 20 is a flowchart in accordance with an aspect of the invention.

FIG. 21 is a flowchart in accordance with an aspect of the invention.

It will be understood that many of the figures are not drawn to scalefor ease of understanding.

DETAILED DESCRIPTION

In just one aspect of the system and method, a phone may be used todetermine the distance between different positions on the surface of ageographic object such as a building. When the user points the phone atthe first position and presses a button, the geographic coordinates ofthe first position are calculated by the phone's processor based on thephone's geographic position, its geographic orientation, and informationidentifying the geographic position of a plurality of points on thesurface. The second position is similarly calculated, and the distancebetween the two points are displayed.

As shown in FIGS. 1-2, a system 100 in accordance with one aspect of theinvention includes a computer 110 containing a processor 120, memory 130and other components typically present in general purpose computers.

Memory 130 stores information accessible by processor 120, includinginstructions 131 that may be executed by the processor 120. It alsoincludes data 135 that may be retrieved, manipulated or stored by theprocessor. The memory may be of any type capable of storing informationaccessible by the processor, such as a hard-drive, memory card, ROM,RAM, DVD, CD-ROM, write-capable, and read-only memories. The processor120 may be any well-known processor, such as processors from IntelCorporation or AMD. Alternatively, the processor may be a dedicatedcontroller such as an ASIC.

The instructions 131 may be any set of instructions to be executeddirectly (such as machine code) or indirectly (such as scripts) by theprocessor. In that regard, the terms “instructions,” “steps” and“programs” may be used interchangeably herein. The instructions may bestored in object code format for direct processing by the processor, orin any other computer language including scripts or collections ofindependent source code modules that are interpreted on demand orcompiled in advance. Functions, methods and routines of the instructionsare explained in more detail below.

Data 135 may be retrieved, stored or modified by processor 120 inaccordance with the instructions 130. For instance, although the systemand method is not limited by any particular data structure, the data maybe stored in computer registers, in a relational database as a tablehaving a plurality of different fields and records, XML documents, orflat files. The data may also be formatted in any computer-readableformat such as, but not limited to, binary values, ASCII or Unicode. Byfurther way of example only, image data may be stored as bitmapscomprised of pixels that are stored in compressed or uncompressed, orlossless or lossy formats (e.g., JPEG), vector-based formats (e.g., SVG)or computer instructions for drawing graphics. The data may comprise anyinformation sufficient to identify the relevant information, such asnumbers, descriptive text, proprietary codes, pointers, references todata stored in other memories (including other network locations) orinformation that is used by a function to calculate the relevant data.

Although FIG. 1 functionally illustrates the processor and memory asbeing within the same block, it will be understood by those of ordinaryskill in the art that the processor and memory may actually comprisemultiple processors and memories that may or may not be stored withinthe same physical housing. For example, some of the instructions anddata may be stored on removable CD-ROM and others within a read-onlycomputer chip. Some or all of the instructions and data may be stored ina location physically remote from, yet still accessible by, theprocessor. Similarly, the processor may actually comprise a collectionof processors which may or may not operate in parallel.

In one aspect, computer 110 is a server communicating with one or moreclient devices 150 and 170. For example, computer 110 may be a webserver. Each client device may be configured similarly to the server110, with a processor, memory and instructions. Each client device 150and 170 may be a personal computer, intended for use by a person190-191, having all the internal components normally found in a personalcomputer such as a central processing unit (CPU), display device (forexample, a monitor having a screen, a projector, a touch-screen, a smallLCD screen, a television, or another device such as an electrical devicethat is operable to display information processed by the processor),CD-ROM, hard-drive, user input (for example, a mouse, keyboard,touch-screen or microphone), speakers, modem and/or network interfacedevice (telephone, cable or otherwise) and all of the components usedfor connecting these elements to one another. Moreover, computers inaccordance with the systems and methods described herein may compriseany device capable of processing instructions and transmitting data toand from humans and other computers including general purpose computers,PDAs, network computers lacking local storage capability, and set-topboxes for televisions. 191

Although the client devices 150 and 170 may comprise a full-sizedpersonal computer, the system and method may also be used in connectionwith mobile devices capable of wirelessly exchanging data with a serverover a network such as the Internet. For example, a client device 170may be a wireless-enabled PDA such as a Blackberry phone or anInternet-capable cellular phone. The user may input information using asmall keyboard (such as in the case of a Blackberry phone), a keypad(such as in the case of a typical cell phone), a touch screen (in thecase of a PDA) or any other user input device.

The server 110 and client devices 150 and 170 are capable of direct andindirect communication, such as over a network 105. Server 110 andclient devices 150 and 170 may also be capable of direct and indirectcommunication with additional computers on the network. Although only afew computers are depicted in FIGS. 1-2, it should be appreciated that atypical system can include a large number of connected computers, witheach different computer being at a different node of the network 105.The network, and intervening nodes, may comprise various configurationsand protocols including the Internet, World Wide Web, intranets, virtualprivate networks, wide area networks, local networks, private networksusing communication protocols proprietary to one or more companies,Internet relay chat channels (IRC), instant messaging, simple mailtransfer protocols (SMTP), Ethernet, WiFi and HTTP, and variouscombinations of the foregoing. Such communication may be facilitated byany device capable of transmitting data to and from other computers,such as modems (e.g., dial-up, cable or fiber optic) and wirelessinterfaces.

The map database may also store street level images 275. A street levelimage is an image of geographic objects that was captured by a camera atan angle generally parallel to the ground. Both the geographic objectsin the image and the camera have a geographic location relative to oneanother. Thus, as shown in FIG. 3, street level image data may representvarious geographic objects such as buildings 320-321, sidewalks 320 andstreet 330. It will be understood that while street level image 310 onlyshows a few objects for ease of explanation, a typical street levelimage will contain as many objects associable with geographic locations(street lights, mountains, trees, bodies of water, vehicles, people,etc.) in as much detail as the camera was able to capture. FIG. 4pictorially illustrates the geographic locations of the buildings 320-21relative to the geographic position 450 and angle 450 of the camera whenthe image was captured.

The objects in the street level images may be captured in a variety ofdifferent ways. For example, the street level image may be captured by acamera mounted on top of a vehicle, from a camera angle pointing roughlyparallel to the ground and from a camera position at or below the legallimit for vehicle heights (e.g., 7-14 feet). (Street level images arenot limited to any particular height above the ground; a street levelimage may be taken from the top of building.) Panoramic street-levelimages may be created by stitching together a plurality of photographstaken from different camera angles. The camera may be any device capableof capturing optical images of objects including film cameras, digitalstill cameras, analog video cameras and image sensors (by way ofexample, CCD, CMOS or other).

In addition to being associated with geographic locations, street levelimages 275 are typically associated with information indicating theorientation of the image. For example, if the street level imagecomprises a digital still image, the orientation may simply be thecamera angle such as an angle that is 30° east of true north and rises2° from ground level. If the street level image is a panoramic image,such as a 360° panorama centered at the geographic location associatedwith the image, the orientation may indicate the portion of the imagethat corresponds with looking due north from the camera position at anangle directly parallel to the ground.

Street level images may also be stored in the form of videos, such as bydisplaying MPEG videos captured by an analog video camera or displaying,in succession, time-sequenced photographs that were captured by adigital still camera.

In one aspect, the geographic locations of the surfaces facing thecamera that captured the images are stored as polygons. Thus, as shownin FIG. 5, the surface 520 of building 321 may be defined as a polygon525 having four vertices, each vertex being associated with a differentgeographic position. The object position data vertices, in turn, may bestored in terms of their latitude, longitude and altitude positions,such as a coordinate of the form (Lat₂°, Lon₂°, Alt₂ meters). In thatregard, the surface 520 of building 321 may be stored as a collection ofgeographic positions (Lat₂, Lon₂, Alt₂), (Lat₃, Lon₃, Alt₃), (Lat₄,Lon₄, Alt₄) and (Lat₅, Lon₅, Alt₅). Thus, the polygon 525 defines thegeographic locations of a plurality of points, namely, the points withinthe bounds of the polygon. The surfaces of other objects may besimilarly stored, as well as the position and orientation of the camerathat captured the image.

Other formats for storing the object position data may also be used. Forexample, a separate value may be stored for each pixel of the streetlevel image where the value represents the geographic position of thesurface that is illustrated at that pixel. Thus, the pixel at row y_(a)and column x_(a) (hereafter, “(x_(a), y_(a))”) of the street level imagemay represent a portion of the surface of a building at that pixel. Oneof the values associated with the pixel may be the color and brightnessof that portion of the surface as captured by the camera. The othervalue associated with the pixel may be the geographic position of thatportion of the surface. Pixels that are not associated with a surfacemay be associated with a null or default surface value. In that regard,and similar to the object position data associated with polygons, theobject position data may define the geographic position of a pluralityof points. In still another aspect, the object position data may storethe distances from the objects to the camera at each pixel of the image.

Rather than being associated with absolute values such aslatitude/longitude, the values of the object position data may berelative to any geographic reference system and in any scale. In variousaspects of the system and method, when a first type of information isused to store the object position data (such as storing the latitude,longitude and altitude of the camera and surface), information ofanother type may be generated from it (such as calculating the distancebetween the camera and a surface). For example, if the object positiondata stores surfaces as a cloud of discrete coordinates, the geographicposition of points in between the stored coordinates may be extrapolatedfrom the nearest, neighboring coordinate(s).

Certain formats permit the surface information to be storedindependently of the street level images taken by the camera. Forexample, object position data stored as described in FIG. 5 may bestored without reference to the street level image or camera position.If the object position data for a street level image is required, suchobject position data may be retrieved by querying those surfaces thatare proximate to the street level image's camera position and in frontof other surfaces.

A variety of systems and methods may be used to collect the surfaceinformation. By way of example only, a laser range finder may be used.In addition, stereoscopic systems employing two cameras, spaced slightlyapart yet looking at the same scene, may be used as well; by analyzingthe slight differences between the images seen by each camera, it ispossible to estimate the distance at each point in the images. In yetanother aspect, the information may be compiled by using a single videocamera, travelling at a particular velocity, to capture the street levelimagery as the scenery passes by. The video may not only be used as thestreet level image, but subsequent frames may be compared to extract thedifferent distances between the objects and the camera (e.g., mountainsin the distance will stay in the frame much longer than a fire hydrantpassing by along the street).

Client devices 150 and 170 may include a geographic position detectorand geographic orientation detector to determine the geographic positionand orientation of the device. For example, client device 170 mayinclude a GPS receiver 189 to determine the device's latitude, longitudeand altitude position. The component may also comprise software fordetermining the position of the device based on other signals receivedat the client device 170, such as signals received at a cell phone'santenna from one or more cell phone towers if the client device is acell phone. It may also include an accelerometer 188 or gyroscope todetermine the direction in which the device is oriented. By way ofexample only, the device may determine its pitch, yaw or roll (orchanges thereto) relative to the direction of gravity or a planeperpendicular thereto.

One manner of expressing the geographic orientation of the client device170 is shown in FIGS. 6-9. As shown in FIG. 6, the client device 170 maybe a PDA/phone having a touch-screen display 171, general-purpose button172, speaker 175, and microphone 174 on the front. The left sideincludes volume buttons 173. The top side includes a cell-phone antenna176 and GPS receiver 189. As shown in FIG. 7, the back includes a camera180. The camera may be oriented in a particular direction (hereafter,“camera angle”).

The camera angle may be expressed in three-dimensions as shown by thecompass rose in FIG. 7 and schematically in FIGS. 8 and 9. It shall beassumed for ease of understanding and not limitation that the cameraangle is fixed relative to the orientation of the device. In thatregard, FIG. 8 illustrates a potential pitch of the device (as seenlooking towards the left side of the device) relative to the ground,e.g., relative to the plane perpendicular to the direction of gravity.FIG. 9 illustrates a potential latitude/longitude angle of the device(as seen looking down towards the top side of the device), e.g., thecamera direction in which the camera points relative to the latitude andlongitude. Collectively, the pitch and latitude/longitude angle define acamera angle in three-dimensions. These angles may be outputted asnumerical values by the accelerometer 188, used by the device'sprocessor, and stored in the memory of the device.

In addition to the operations illustrated in FIGS. 20-21, variousoperations in accordance with a variety of aspects of the invention willnow be described. It should be understood that the following operationsdo not have to be performed in the precise order described below.Rather, various steps can be handled in reverse order or simultaneously.

In one aspect, a user may determine the distances between two differentpoints on one or more geographic objects by orienting the client deviceat the points. In that regard, as shown in FIG. 10, the user may standin front of building 321 and orient the phone 170 in a direction 1010that points at the right-most window 1011 of building 321 if the userdesires to measure a distance starting with the right-most window 1011.

The camera of the device may be used to help the user orient the phoneat the desired position on the surface of a geographic object. Forexample, as shown in FIG. 11, the phone's processor may periodicallyupdate the display 171 so that it continuously shows the image currentlycaptured by the camera 180. In that regard, the camera may show thebuilding 321. It may also display a target 1180, bulls eye or some otherindicator to indicate the exact or approximate position of thegeographic object at which the camera device is pointed.

In one aspect, the user presses a button or provides some otherindication that it has selected the first geographic position he or shewishes to measure (hereafter, the “first target”). For example, the usermay depress button 172 when the target 1180 points at the right-mostwindow 1011 of building 321.

The geographic position of the first target may be determined by thegeographic position and orientation of the client device and the objectposition data associated with the targeted geographic object. Forexample, as shown in FIG. 1, when the user selects the first target,client device 170 may obtain its latitude/longitude/altitude positionfrom GPS receiver 189 and its orientation from accelerometer 188. Thisinformation is transmitted by the client device 170 to server 110 alongwith a request for the geographic position of the target. The server110, in turn, may query object position data 260 for surfaces that areproximate to the client device's position and facing the device'sposition.

As shown in FIG. 12, the geographic position of the target may bedetermined based on the device's geographic position and orientation aswell as the geographic position of the targeted geographic object. Forexample, the line 1210 from device 170 to the target position 1250 maybe described by both the device's position (which may be represented bythe device's altitude relative to the ground and its latitude/longitudeposition) and orientation (which may be represented by the pitch anglerelative to the ground and an angle relative to latitude/longitude). Inthe regard, the line may also be considered a vector. The surface plane525 of the targeted geographic object may be described by its objectposition data (e.g., as noted above, the plane may be defined by theposition of the vertices, which are each in turn represented by theiraltitude relative to the ground and their latitude/longitude position).Using techniques such as analytic geometry and ray tracing, theintersection of the line and plane may be computed by the server'sprocessor, with the result representing the geographic position of thetarget 1250. If multiple surfaces within the object position data wouldbe intersected by the line, the surface closest to the device may beselected.

The server may then provide the resulting geographic position of thefirst target to the client device.

The user may then select another target. For example, as shown in FIG.13, the user may stand in front of building 321 and orient the phone 170in a direction 1310 that points at the left-most window 1311 of building321. As before, the camera of the device may be used to help the userorient the phone at the desired position on the surface of a geographicobject. For example, as shown in FIG. 14, the phone's processor maydisplay the image currently captured by the camera on the display 171such as building 321. It may also display a target 1480, bulls eye orsome other indicator to indicate the exact or approximate position ofthe geographic object at which the camera device is pointed. The usermay select the second target via some user input, such as depressingbutton 172.

The geographic position of the second target may be determined similarlyto the first target. For example, as shown in FIG. 15, the line 1510from device 170 to the target position 1550 may be described by both thecamera angle and device position. The surface plane 525 of the targetedgeographic object may be described by its object position data. Althoughthe example of FIG. 15 has both targets on the same geographic surface525, it will be understood that the second target could be on adifferent geographic object.

The server 110 may provide the resulting geographic position of thesecond geographic target to the client device as well.

The distance between the two targets may then be calculated. Forexample, as shown in FIG. 16, the distance between the first geographicposition 1250 and second geographic position 1260 may be calculatedbased on their geographic coordinates. The distance may be calculated byconverting the difference between the respective latitudes into meters,the difference between the respective latitudes into meters, thedifference between the altitudes, and then taking the square root of thesum of the squares of the differences. The server may then provide theresult to the client device.

The distance may be displayed to the user. For example, as shown in FIG.17, the processor of client device 170 may cause display 171 to displaya message 1780 that indicates the distance between the first and secondtarget. As shown in FIG. 18, the display 171 may also show the locationof both the first 1180 and second target 1480 on photographs 1810, 1820of the geographic objects (such photos being taken when the userselected the first and second target 1180, 1480).

In another aspect, the system and method determines the distance fromthe client device to the geographic object rather than between differentpoints on different geographic objects. For example, as shown in FIG.19, client device 170 may display a message 1980 showing the distancefrom the client device to the target position 1985. The distance may becomputed in a manner to that similarly described above, except that thecamera's geographic position would be used to compute the distance inlieu of another target.

In another aspect, the client device retrieves and displays a portion ofthe street level image corresponding with the determined geographicposition. This allows the user to visually compare the position on thestreet level image with the position on the image captured by the phonein order to confirm that the position was correctly determined.

In yet another aspect of the invention, the client device will performsome or all of the calculations. For example, the client device maydownload the object position data and compute the geographic position ofthe targets and the relevant distances using its own processor, ratherthan sending the information to the server.

In that regard, the server may send a three-dimensional model of thesurfaces of the geographic objects in the nearby area based on thecurrent location of the client device. In response, the client devicemay be used to measure and display the distance between any two pointsbased on the three-dimensional model without generating further requeststo the server. In certain circumstances, this may both reduce thenetwork communication between the server and client device and enablethe user to continue to interactively measuring distances.

Indeed, while there are advantages to obtaining the object position databy querying the server based on the client device's current position,the client device may pre-store object position data instead.

Most of the foregoing alternative embodiments are not mutuallyexclusive, but may be implemented in various combinations to achieveunique advantages. As these and other variations and combinations of thefeatures discussed above can be utilized without departing from theinvention as defined by the claims, the foregoing description of theembodiments should be taken by way of illustration rather than by way oflimitation of the invention as defined by the claims. It will also beunderstood that the provision of examples of the invention (as well asclauses phrased as “such as,” “including” and the like) should not beinterpreted as limiting the invention to the specific examples; rather,the examples are intended to illustrate only one of many possibleembodiments.

1. A method of determining distances with a device comprising: receivingobject position data representing the position of a surface of ageographic object; determining a first and second geographic position ofthe device; determining a first and second geographic orientation of thedevice; determining, with a processor, the distance between a first andsecond position on the surface of the geographic object based on thefirst geographic position of the device, the second geographic positionof the device, the first geographic orientation of the device, thesecond geographic orientation of the device and the object positiondata; and wherein the device is a wireless phone and the object positiondata is wirelessly received by the phone.
 2. The method of claim 1wherein the first and second geographic positions of the device aredetermined with a GPS component.
 3. The method of claim 1 wherein thefirst and second geographic orientations are determined with anaccelerometer.
 4. The method of claim 1 wherein the first position isdetermined by determining the position of the surface, as represented bythe object position data, that is intersected by a vector extending fromthe first geographic position of the device at an angle equal to thefirst geographic orientation.
 5. The method of claim 1 wherein thesecond position is determined by determining the position of thesurface, as represented by the object position data, that is intersectedby a vector extending from the second geographic position of the deviceat an angle equal to the second geographic orientation.
 6. The method ofclaim 1 further comprising displaying, on an electronic display, thedistance.
 7. The method of claim 1 further comprising capturing, with acamera, an image of the surface of the geographic object and displayingthe image on an electronic display.
 8. The method of claim 7 furthercomprising displaying, on the displayed image, an indication of thefirst position on the surface relative to the image.
 9. A method ofusing a wireless phone to determine distances comprising: receivingfirst and second position values representative of the geographicposition of the wireless phone; receiving first and second orientationvalues representative of the geographic orientation of the wirelessphone; receiving object position data from a server, where the objectposition data represents the geographic position of a plurality ofpoints on the surface of a geographic object; determining with aprocessor, first and second geographic positions on the surface suchthat the first and second geographic positions corresponds with theintersection of the surface with the first and second lines defined bythe first and second positions and the first and second geographicorientations, respectively; determining with a processor, the distancebetween the first and second geographic positions on the surface; anddisplaying, on an electronic display on the wireless phone, thedistance.
 10. The method of claim 9 further comprising: receiving thefirst position value and first orientation value in response to a useractivating a button on the wireless phone at a first point in time; andreceiving the second position value and second orientation value inresponse to a user activating a button on the wireless phone at a secondpoint in time after the first point in time.
 11. The method of claim 10further comprising: periodically capturing images with a cameracontained in the wireless phone; and displaying the capture images withan indication of the portion of the image that corresponds with theorientation of the camera.